Always call domain_update_node_affinity() with IRQs enabled.
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 6 Aug 2010 15:49:16 +0000 (16:49 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 6 Aug 2010 15:49:16 +0000 (16:49 +0100)
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/common/schedule.c

index e118a72f7334cfecbfc34749cd53bdbab7e07033..c3a897f5467c5aa94d1c28a833cd4f4d3957a1a0 100644 (file)
@@ -528,13 +528,14 @@ int vcpu_set_affinity(struct vcpu *v, cpumask_t *affinity)
 
     old_affinity = v->cpu_affinity;
     v->cpu_affinity = *affinity;
-    domain_update_node_affinity(v->domain);
     *affinity = old_affinity;
     if ( !cpu_isset(v->processor, v->cpu_affinity) )
         set_bit(_VPF_migrating, &v->pause_flags);
 
     vcpu_schedule_unlock_irq(v);
 
+    domain_update_node_affinity(v->domain);
+
     if ( test_bit(_VPF_migrating, &v->pause_flags) )
     {
         vcpu_sleep_nosync(v);